﻿$(function () {

    $("#dialog-opciones").dialog({
        autoOpen: false,
        height: 420,
        width: 600,
        modal: true,
        buttons:
        {
            "Guardar": function () {
                guardarOpcion();
            },
            "Cancelar": function () {
                limpiar();
                $(this).dialog("close");
            }
        },
        close: function () {
            limpiar();
        }
    });

    $("#btnNuevaOpcion").click(function (event) {
        event.preventDefault();
        $("#btnLimpiaPadre").show();
        $("#btnBuscarPadre").show();

        $("#dialog-opciones").dialog('option', 'title', 'EDICION DE OPCION');
        $("#dialog-opciones").dialog("open");
    });

    $("#txtBuscarLista").keypress(function (event) {
        if (event.which == 13) {
            event.preventDefault();
            $("#btnBuscarLista").trigger("click");
        }
    });

    $("#btnBuscarLista").click(function (event) {
        event.preventDefault();
        var title = $("#dialog-list").dialog("option", "title");
        switch (title) {
            case "Padres":
                listarPadreOpciones("txtCodPadre", "txtPadre");
                break;
            default:
                break;
        }
        return;
    });

    $("#btnLimpiaPadre").click(function (event) {
        event.preventDefault();
        $("#txtCodPadre").val("");
        $("#txtPadre").val("");
    });

    $("#btnBuscarPadre").click(function (event) {
        event.preventDefault();
        $("#txtBuscarLista").val("");
        $("#listado").html("");
        listarPadreOpciones("txtCodPadre", "txtPadre");
        $("#dialog-list").dialog('option', 'title', 'Padres');
        $("#dialog-list").dialog("open");
    });

    function buscar() {
        $("#mensaje_container").hide();
        $("#mensaje").html("");

        var texto = "";
        var parametros = {
            "texto": texto
        };

        $.ajax({
            data: parametros,
            url: basePath + "/Seguridades/ListarOpciones",
            type: "POST",
            async: false,
            beforeSend: function () {
                $("#load").show();
            },
            success: function (response) {
                $("#resultados").show();
                $("#resultados").html(response);
                $("#load").hide();

                var puede_editar = tiene_permiso("EDITAR");
                var puede_borrar = tiene_permiso("BORRAR");

                if (puede_borrar == "SI" || puede_editar == 'SI') {

                    var nCloneTh = document.createElement('th');
                    var nCloneTd = document.createElement('td');

                    $('#tableOpciones thead tr').each(function () {
                        this.insertBefore(nCloneTh, this.childNodes[0]);
                    });

                    $('#tableOpciones tbody tr').each(function () {
                        var guid = this.childNodes[6].innerHTML;
                        var estado = this.childNodes[4].innerHTML;
                        nCloneTd.innerHTML = "<div style='width: 150px;'>";

                        if (puede_editar == "SI") {
                            nCloneTd.innerHTML = "<button title='Editar' id='editOpcion_" + guid + "' class='btnEdit'><img style='vertical-align: top;' src='" + basePath + "/Images/edit.png'></button>";
                        }

                        if (puede_borrar == "SI") {
                            if (estado == "ACTIVO") {
                                nCloneTd.innerHTML += "<button title='Desactivar' id='deleteOpcion_" + guid + "' class='btnDelete'><img style='vertical-align: top;' src='" + basePath + "/Images/delete.png'></button>";
                            }
                            else if (estado == "INACTIVO") {
                                nCloneTd.innerHTML += "<button title='Activar' id='activateOpcion_" + guid + "' class='btnActivate'><img style='vertical-align: top;' src='" + basePath + "/Images/accept.png'></button>";
                            }
                        }

                        nCloneTd.innerHTML += "</div>";
                        this.insertBefore(nCloneTd.cloneNode(true), this.childNodes[0]);

                    });
                }
                if (puede_editar == "SI") {
                    $(".btnEdit").button();
                    $(".btnEdit").click(function () {
                        guid = this.id.replace("editOpcion_", "");

                        consultarOpcion(guid);
                        $("#btnNuevaOpcion").trigger("click");

                    });
                }

                if (puede_borrar == "SI") {
                    $(".btnDelete").button();
                    $(".btnDelete").click(function () {
                        guid = this.id.replace("deleteOpcion_", "");
                        $("#dialog-confirm").dialog({
                            autoOpen: false,
                            resizable: false,
                            height: 160,
                            modal: true,
                            buttons: {
                                "Si": function () {
                                    $(this).dialog("close");
                                    eliminarOpcion(guid);
                                },
                                "No": function () {
                                    $(this).dialog("close");
                                }
                            }
                        });
                        $("#dialog-confirm").dialog("option", "title", "Desactivar opción");
                        $("#dialog-confirm-message").html("¿ Está seguro que desea desactivar esta opción ?");
                        $("#dialog-confirm").dialog("open");
                    });

                    $(".btnActivate").button();
                    $(".btnActivate").click(function () {
                        guid = this.id.replace("activateOpcion_", "");
                        $("#dialog-confirm").dialog({
                            autoOpen: false,
                            resizable: false,
                            height: 160,
                            modal: true,
                            buttons: {
                                "Si": function () {
                                    $(this).dialog("close");
                                    eliminarUsuario(guid);
                                },
                                "No": function () {
                                    $(this).dialog("close");
                                }
                            }
                        });
                        $("#dialog-confirm").dialog("option", "title", "Activar opción");
                        $("#dialog-confirm-message").html("¿ Está seguro que desea activar esta opción ?");
                        $("#dialog-confirm").dialog("open");
                    });
                }

                toDatatable("tableOpciones", "opciones")

            }
        });
    }

    function consultarOpcion(guid) {
        limpiar();
        var parametros = {
            "guid": guid
        };
        $.ajax({
            data: parametros,
            url: basePath + "/Seguridades/ConsultarOpcion",
            type: "POST",
            async: false,
            beforeSend: function () {
            },
            success: function (response) {
                var xml = response;
                $("#xmlData").html(xml);

                $("#txtGuidOpcion").val($("#guid").html());
                $("#txtDescripcion").val($("#descripcion").html());
                $("#txtUrl").val($("#url").html());
                $("#txtImagen").val($("#imagen").html());
                $("#lstEstado").val($("#id_estado").html());
                $("#txtCodPadre").val($("#guid_padre").html());
                $("#txtPadre").val($("#padre").html());
            }
        });
    }

    function eliminarOpcion(guid) {
        var parametros = {
            "guid": guid
        };
        $.ajax({
            data: parametros,
            url: basePath + "/Seguridades/EliminarOpcion",
            type: "POST",
            async: false,
            beforeSend: function () {
            },
            success: function (response) {
                buscar();
            }
        });
    }

    function listarPadreOpciones(txtIdObj, txtDescObj) {
        var parametros = {
            "tipo": "table"
        };
        $("#listado").html("");
        $.ajax({
            data: parametros,
            url: basePath + "/Seguridades/ListarPadres",
            type: "POST",
            async: false,
            beforeSend: function () {
                $("#load_list").html("Buscando ... <img src='" + basePath + "/Images/16_progress.gif' style='vertical-align: middle;'>");
            },
            success: function (response) {
                $("#load_list").html("");
                $("#listado").html(response);

                $(".btItem").click(function (event) {
                    var id = this.id;
                    $("#" + txtIdObj).val(id);
                    $("#" + txtDescObj).val($("#" + id).html());
                    $("#listado").html("");
                    $("#txtBuscarLista").val("");
                    $("#dialog-list").dialog("close");
                });
            }
        });
    }

    function guardarOpcion() {
        var guid = $("#txtGuidOpcion").val();
        var descripcion = $("#txtDescripcion").val().toUpperCase();
        var url = $("#txtUrl").val();
        var imagen = $("#txtImagen").val();
        var guid_padre = $("#txtCodPadre").val();
        var id_estado = $("#lstEstado").val();
        var usuario_ing = codusuario;

        if (guid_padre == '') {
            if (descripcion == '') {
                $("#load_opcion").html("Por favor ingrese todos los datos requeridos para la opción.");
                return 0;
            }
        } else {
            if (descripcion == '' || url == '') {
                $("#load_opcion").html("Por favor ingrese todos los datos requeridos para la opción.");
                return 0;
            }
        }

        $("#load_opcion").html("");
        var parametros = {
            "guid": guid,
            "descripcion": descripcion.substring(0, 200),
            "url": url,
            "imagen": imagen,
            "guid_padre": guid_padre,
            "id_estado": id_estado,
            "usuario_ing": usuario_ing
        };

        $.ajax({
            data: parametros,
            url: basePath + "/Seguridades/GuardarOpcionAction",
            type: "POST",
            async: false,
            beforeSend: function () {
                $("#load_opcion").html("<img src='" + basePath + "/Images/16_progress.gif'> Guardando ...");
            },
            success: function (response) {
                $("#load_opcion").html("");

                if (response == '') {
                    buscar();
                    limpiar();
                    $("#dialog-opciones").dialog("close");
                }
                else {
                    $("#load_opcion").html(response);
                }
            }
        });
    }

    function limpiar() {
        $("#txtGuidOpcion").val("");
        $("#txtDescripcion").val("");
        $("#txtUrl").val("");
        $("#txtImagen").val("");
        $("#txtCodPadre").val("");
        $("#txtPadre").val("");
        $("#lstEstado").val("1");
    }

    function toDatatable(tablename, filename) {
        $('#' + tablename).dataTable({
            "bLengthChange": true,
            "bProcessing": true,
            "iDisplayLength": 50,
            "bJQueryUI": true,
            "sScrollX": "100%",
            "bScrollCollapse": false,
            "sScrollY": "250px",
            "bPaginate": true,
            "bDeferRender": true,
            "sPaginationType": "full_numbers",
            "oLanguage": {
                "sProcessing": "Procesando...",
                "sLengthMenu": "Mostrar _MENU_ registros",
                "sZeroRecords": "No se encontraron resultados",
                "sEmptyTable": "Ningún dato disponible en esta tabla",
                "sInfo": "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
                "sInfoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
                "sInfoFiltered": "(filtrado de un total de _MAX_ registros)",
                "sInfoPostFix": "",
                "sSearch": "Buscar:",
                "sUrl": "",
                "sInfoThousands": ",",
                "sLoadingRecords": "Cargando...",
                "oPaginate": {
                    "sFirst": "Primero",
                    "sLast": "Último",
                    "sNext": "Siguiente",
                    "sPrevious": "Anterior"
                },
                "oAria": {
                    "sSortAscending": ": Activar para ordenar la columna de manera ascendente",
                    "sSortDescending": ": Activar para ordenar la columna de manera descendente"
                }
            },
            "sDom": '<"H"Tfr>t<"F"ipl>',
            "aoColumnDefs": [
                        { "sType": "numeric", "aTargets": [4] }
                    ],
            "aoColumnDefs": [
                        { "sWidth": "100px", "aTargets": [0] }
                    ],
            "oTableTools": {
                "aButtons": [
                            {
                                "sExtends": "copy",
                                "sButtonText": "<img alt='Copiar al portapapeles' src='" + basePath + "/Images/copy_hover.png'/> Copiar"
                            },
                            {
                                "sExtends": "xls",
                                "sButtonText": "<img alt='Exporta a Excel' src='" + basePath + "/Images/xls_hover.png'/> Excel",
                                "sDiv": "",
                                "sTitle": filename,
                                "bHeader": true,
                                "sCharSet": "utf16le",
                                "sFileName": "*.xls"
                                /*"fnCellRender": function (sValue, iColumn, nTr, iDataIndex) {
                                // Append text to column 3
                                if (iColumn === 2) {
                                return "'" + sValue + "";
                                }
                                return sValue;
                                }*/
                            },
                            {
                                "sExtends": "pdf",
                                "sButtonText": "<img alt='Exportar a PDF' src='" + basePath + "/Images/pdf_hover.png'/> PDF",
                                "sPdfOrientation": "landscape",
                                "bHeader": true,
                                "sTitle": filename
                            }
                        ]
            }
        });

    }

    buscar();
});
